package pe.com.bbva.configuracion.bo.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import pe.com.bbva.configuracion.bo.ConfArchivoBO;
import pe.com.bbva.configuracion.dao.ConfArchivoDAO;
import pe.com.bbva.configuracion.domain.ConfArchivo;
import pe.com.stefanini.core.bo.GenericBOImpl;
import pe.com.stefanini.core.exceptions.BOException;
import pe.com.stefanini.core.exceptions.DAOException;

@Service("confArchivoBO")
public class ConfArchivoBOImpl extends GenericBOImpl<ConfArchivo> implements ConfArchivoBO{
	
	@Resource
	private ConfArchivoDAO confArchivoDAO;
	
	public ConfArchivo findById(Long id) throws BOException {
		ConfArchivo confArchivo = super.findById(ConfArchivo.class, id);
		return confArchivo;
	}

	public boolean validate(ConfArchivo confArchivo) throws BOException{
		return true;
	}

	@Transactional(propagation=Propagation.REQUIRED)
	public void save(ConfArchivo confArchivo) throws BOException, DAOException {
		super.save(confArchivo);
	}
	
	@Transactional(propagation=Propagation.REQUIRED , rollbackFor ={BOException.class})
	public Long  ValidaCargaEnProceso() throws BOException {
		Long idArchivo = 0L;		
		try {
			idArchivo = confArchivoDAO.ValidaCargaEnProceso();
		} catch (DAOException e) {
			e.printStackTrace();
			throw new BOException(e.getMessage());
		}
		return idArchivo;
	}

	public List<ConfArchivo> findConfArchivo(ConfArchivo confArchivo) throws BOException, DAOException {
		List<ConfArchivo> listaConfArchivo = confArchivoDAO.findConfArchivos(confArchivo);
	    return listaConfArchivo;
	}
}